package org.example.design.template.utils;

import java.io.OutputStream;
import java.util.List;

/**
 * @author huangshen
 * @version 0.0.3
 * @description Excel导出工具类接口
 * @since 2021-12-24 21:30:22
 */
public interface IExcelExportUtil {
    /**
     * 初始化Excel
     */
    void initExcel();

    /**
     * 设置标题
     */
    void setTitle(String excelTitle);

    /**
     * 设置列名
     */
    void setColName(List<String> paramNameList);

    /**
     * 设置单元格样式
     * @param cellType 单元格类型(标题/普通单元格）
     */
    void setCellStyle(String cellType);

    /**
     * 设置超链接
     * @param linkPath 超链接路径
     */
    void setHyperLink(String linkPath);

    /**
     * 设置每一行的数据
     * @param value 单元格数据
     * @param index 角标
     */
    void setRowData(String value, int index);

    /**
     * 创建新一页
     * @param title 标题
     */
    void createSheet(String title);

    /**
     * 创建Excel
     * @param outputStream 文件输出流
     */
    void createExcel(OutputStream outputStream);

    /**
     * 设置样式
     * @param styleValue 样式
     * @return IExcelExportUtil
     */
    IExcelExportUtil setStyleValue(ExcelStyle styleValue);
}
